<?php
/**
 * PHP IDS
 * 
 * Requirements: PHP5, SimpleXML, MultiByte Extension (optional)
 *  
 * Copyright 2007 Mario Heiderich for Ormigo 
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy 
 * of this software and associated documentation files (the "Software"), to deal 
 * in the Software without restriction, including without limitation the rights to use, 
 * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the 
 * Software, and to permit persons to whom the Software is furnished to do so, 
 * subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in 
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

/**
 * This file is hosted on Google Code and can be 
 * discussed on Google Groups
 * 
 * http://code.google.com/p/phpids/ 
 * http://groups.google.de/group/php-ids/
 * 
 */

/**
 * Abstract Filter Storage
 * 
 * Class to assure the systems API
 *
 * @package		 profiles
 * @subpackage	 models
 * @author		 christ1an <ch0012@gmail.com>
 */
abstract class IDS_Filter_Storage_Abstract {
	
	private $filterSet = array();

	/**
	 * Constructor
	 *
	 * @access	public
	 * @param	array
	 * @return	void
	 */
	public final function __construct($filterSet = false) {
		if ($filterSet) {
			$this->filterSet = $filterSet;
		}
	}
	
	/**
	 * Sets filter array manually
	 *
	 * @access	public
	 * @param	array
	 * @return	mixed	bool true or exception object
	 */
	public final function setFilterSet($filterSet) {
		foreach ($filterSet as $filter) {
			$this->addFilter($filter);
		}
		return $this;
	}
	
	/**
	 * Returns array containing all filters
	 *
	 * @access	public
	 * @return	void
	 */
	public final function getFilterSet() {
		return $this->filterSet;
	}
	
	/**
	 * Adds one particular filter
	 *
	 * @access	public
	 * @param	array
	 * @return	mixed	true on success, otherwise exception object
	 */
	public final function addFilter(IDS_Filter_Abstract $filter) {
		$this->filterSet[] = $filter;
		return $this;
	}

}
/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4
 * End:
 */
